﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://tempuri.org/" elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/" />
  <xs:import namespace="http://schemas.datacontract.org/2004/07/CC.Yacht.Messages" />
  <xs:import namespace="http://schemas.datacontract.org/2004/07/CC.Yacht" />
  <xs:element name="CreateGame">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q1:guid" />
        <xs:element xmlns:q2="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="lobbyId" type="q2:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="JoinGame">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q3="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q3:guid" />
        <xs:element xmlns:q4="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="gameId" type="q4:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="JoinLobby">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q5="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q5:guid" />
        <xs:element xmlns:q6="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="lobbyId" type="q6:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LeaveGame">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q7="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q7:guid" />
        <xs:element xmlns:q8="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="gameId" type="q8:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LeaveLobby">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q9="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q9:guid" />
        <xs:element xmlns:q10="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="lobbyId" type="q10:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Login">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="email" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LoginResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q11="http://schemas.datacontract.org/2004/07/CC.Yacht.Messages" minOccurs="0" name="LoginResult" nillable="true" type="q11:LoginResponse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Logout">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q12="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q12:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Ping">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="PingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="PingResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Register">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="email" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="username" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="password" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RegisterResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q13="http://schemas.datacontract.org/2004/07/CC.Yacht.Messages" minOccurs="0" name="RegisterResult" nillable="true" type="q13:BaseResponse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Roll">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q14="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q14:guid" />
        <xs:element xmlns:q15="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="gameId" type="q15:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SendMessage">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q16="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q16:guid" />
        <xs:element xmlns:q17="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="target" type="q17:Target" />
        <xs:element xmlns:q18="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="targetId" type="q18:guid" />
        <xs:element minOccurs="0" name="message" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetScoreField">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q19="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q19:guid" />
        <xs:element xmlns:q20="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="gameId" type="q20:guid" />
        <xs:element xmlns:q21="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="scoreField" type="q21:ScoreField" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="StartGame">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q22="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q22:guid" />
        <xs:element xmlns:q23="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="gameId" type="q23:guid" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateDice">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q24="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="sessionId" type="q24:guid" />
        <xs:element xmlns:q25="http://schemas.microsoft.com/2003/10/Serialization/" minOccurs="0" name="gameId" type="q25:guid" />
        <xs:element xmlns:q26="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="dice" nillable="true" type="q26:Dice" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GameMessageReceived">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q27="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="user" nillable="true" type="q27:User" />
        <xs:element minOccurs="0" name="message" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GameRolled">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q28="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="dice" nillable="true" type="q28:Dice" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GameStateChanged">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q29="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="gameState" nillable="true" type="q29:GameState" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GameOver">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q30="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="winner" nillable="true" type="q30:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="JoinedGame">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q31="http://schemas.datacontract.org/2004/07/CC.Yacht.Messages" minOccurs="0" name="response" nillable="true" type="q31:JoinGameResponse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="JoinedLobby">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q32="http://schemas.datacontract.org/2004/07/CC.Yacht.Messages" minOccurs="0" name="response" nillable="true" type="q32:JoinLobbyResponse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LobbyGameAdded">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q33="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="game" nillable="true" type="q33:Game" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LobbyGameChanged">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q34="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="game" nillable="true" type="q34:Game" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LobbyGameRemoved">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q35="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="game" nillable="true" type="q35:Game" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LobbyMessageReceived">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q36="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="user" nillable="true" type="q36:User" />
        <xs:element minOccurs="0" name="message" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LobbyUserJoined">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q37="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="user" nillable="true" type="q37:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="LobbyUserLeft">
    <xs:complexType>
      <xs:sequence>
        <xs:element xmlns:q38="http://schemas.datacontract.org/2004/07/CC.Yacht" minOccurs="0" name="user" nillable="true" type="q38:User" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>